home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 January: Technology Seed / Jan. '98 ATS.toast / QuickTime™ 3.0b11 / QTPublicInterfaces / CIncludes / Quickdraw.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-12  |  60.2 KB  |  1,890 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        Quickdraw.h
  3.  
  4.      Contains:    Quickdraw Graphics Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    QuickTime 3.0 Beta
  8.  
  9.      Copyright:    © 1985-1997 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. */
  18. #ifndef __QUICKDRAW__
  19. #define __QUICKDRAW__
  20.  
  21. #ifndef __MACTYPES__
  22. #include <MacTypes.h>
  23. #endif
  24. #ifndef __MIXEDMODE__
  25. #include <MixedMode.h>
  26. #endif
  27. #ifndef __QUICKDRAWTEXT__
  28. #include <QuickdrawText.h>
  29. #endif
  30.  
  31.  
  32.  
  33. #if PRAGMA_ONCE
  34. #pragma once
  35. #endif
  36.  
  37. #ifdef __cplusplus
  38. extern "C" {
  39. #endif
  40.  
  41. #if PRAGMA_IMPORT
  42. #pragma import on
  43. #endif
  44.  
  45. #if PRAGMA_STRUCT_ALIGN
  46.     #pragma options align=mac68k
  47. #elif PRAGMA_STRUCT_PACKPUSH
  48.     #pragma pack(push, 2)
  49. #elif PRAGMA_STRUCT_PACK
  50.     #pragma pack(2)
  51. #endif
  52.  
  53.  
  54.  
  55. #if OLDPIXMAPSTRUCT
  56. #define GETPIXMAPPIXELFORMAT(pm)        ( (pm)->pixelSize )
  57. #else
  58. #define GETPIXMAPPIXELFORMAT(pm)        ( ((pm)->pixelFormat != 0) ? (pm)->pixelFormat : (pm)->pixelSize )
  59. #endif
  60.  
  61.  
  62.  
  63. #if TARGET_OS_MAC || (NeXT && ppc)
  64.     #define NON_MAC_PIXEL_FORMATS   0
  65. #else
  66.     #define NON_MAC_PIXEL_FORMATS   1
  67. #endif
  68.  
  69.  
  70.  
  71. // pixel formats
  72.  
  73. #define k1MonochromePixelFormat            0x00000001                    // 1 bit indexed
  74. #define k2IndexedPixelFormat            0x00000002                    // 2 bit indexed
  75. #define k4IndexedPixelFormat            0x00000004                    // 4 bit indexed
  76. #define k8IndexedPixelFormat            0x00000008                    // 8 bit indexed
  77. #define k16BE555PixelFormat                0x00000010                    // 16 bit BE rgb 555 (Mac)
  78. #define k24RGBPixelFormat                0x00000018                    // 24 bit rgb 
  79. #define k32ARGBPixelFormat                0x00000020                    // 32 bit argb    (Mac)
  80. #define k1IndexedGrayPixelFormat        0x00000021                    // 1 bit indexed gray
  81. #define k2IndexedGrayPixelFormat        0x00000022                    // 2 bit indexed gray
  82. #define k4IndexedGrayPixelFormat        0x00000024                    // 4 bit indexed gray
  83. #define k8IndexedGrayPixelFormat        0x00000028                    // 8 bit indexed gray
  84.  
  85. #define k16LE555PixelFormat                'L555'                        // 16 bit LE rgb 555 (PC)
  86. #define k16BE565PixelFormat                'B565'                        // 16 bit BE rgb 565
  87. #define k16LE565PixelFormat                'L565'                        // 16 bit LE rgb 565
  88. #define k24BGRPixelFormat                '24BG'                        // 24 bit bgr 
  89. #define k32BGRAPixelFormat                'BGRA'                        // 32 bit bgra    (Matrox)
  90. #define k32ABGRPixelFormat                'ABGR'                        // 32 bit abgr    
  91. #define k32RGBAPixelFormat                'RGBA'                        // 32 bit rgba    
  92.  
  93. #define kYUVSPixelFormat                'yuvs'                        // YUV 4:2:2 byte ordering 16-unsigned = 'YUY2'
  94. #define kYUVUPixelFormat                'yuvu'                        // YUV 4:2:2 byte ordering 16-signed
  95.  
  96. #define kYVU9PixelFormat                'YVU9'                        // YVU9 Planar    9
  97. #define kYUV411PixelFormat                'Y411'                        // YUV 4:1:1 Interleaved    16
  98. #define kYVYU422PixelFormat                'YVYU'                        // YVYU 4:2:2 byte ordering    16
  99. #define kUYVY422PixelFormat                'UYVY'                        // UYVY 4:2:2 byte ordering    16
  100. #define kYUV211PixelFormat                'Y211'                        // YUV 2:1:1 Packed    8
  101.  
  102.  
  103.  
  104.  
  105. enum {
  106.     invalColReq                    = -1,                            /*invalid color table request*/
  107.                                                                 /* transfer modes */
  108.     srcCopy                        = 0,                            /*the 16 transfer modes*/
  109.     srcOr                        = 1,
  110.     srcXor                        = 2,
  111.     srcBic                        = 3,
  112.     notSrcCopy                    = 4,
  113.     notSrcOr                    = 5,
  114.     notSrcXor                    = 6,
  115.     notSrcBic                    = 7,
  116.     patCopy                        = 8,
  117.     patOr                        = 9,
  118.     patXor                        = 10,
  119.     patBic                        = 11,
  120.     notPatCopy                    = 12,
  121.     notPatOr                    = 13,
  122.     notPatXor                    = 14,
  123.     notPatBic                    = 15,                            /* Special Text Transfer Mode */
  124.     grayishTextOr                = 49,
  125.     hilitetransfermode            = 50,
  126.     hilite                        = 50,                            /* Arithmetic transfer modes */
  127.     blend                        = 32,
  128.     addPin                        = 33,
  129.     addOver                        = 34,
  130.     subPin                        = 35,
  131.     addMax                        = 37,
  132.     adMax                        = 37,
  133.     subOver                        = 38,
  134.     adMin                        = 39,
  135.     ditherCopy                    = 64,                            /* Transparent mode constant */
  136.     transparent                    = 36
  137. };
  138.  
  139.  
  140. enum {
  141.     italicBit                    = 1,
  142.     ulineBit                    = 2,
  143.     outlineBit                    = 3,
  144.     shadowBit                    = 4,
  145.     condenseBit                    = 5,
  146.     extendBit                    = 6,                            /* QuickDraw color separation constants */
  147.     normalBit                    = 0,                            /*normal screen mapping*/
  148.     inverseBit                    = 1,                            /*inverse screen mapping*/
  149.     redBit                        = 4,                            /*RGB additive mapping*/
  150.     greenBit                    = 3,
  151.     blueBit                        = 2,
  152.     cyanBit                        = 8,                            /*CMYBk subtractive mapping*/
  153.     magentaBit                    = 7,
  154.     yellowBit                    = 6,
  155.     blackBit                    = 5
  156. };
  157.  
  158.  
  159. enum {
  160.     blackColor                    = 33,                            /*colors expressed in these mappings*/
  161.     whiteColor                    = 30,
  162.     redColor                    = 205,
  163.     greenColor                    = 341,
  164.     blueColor                    = 409,
  165.     cyanColor                    = 273,
  166.     magentaColor                = 137,
  167.     yellowColor                    = 69
  168. };
  169.  
  170.  
  171. enum {
  172.     picLParen                    = 0,                            /*standard picture comments*/
  173.     picRParen                    = 1,
  174.     clutType                    = 0,                            /*0 if lookup table*/
  175.     fixedType                    = 1,                            /*1 if fixed table*/
  176.     directType                    = 2,                            /*2 if direct values*/
  177.     gdDevType                    = 0                                /*0 = monochrome 1 = color*/
  178. };
  179.  
  180.  
  181. enum {
  182.     interlacedDevice            = 2,                            /* 1 if single pixel lines look bad */
  183.     roundedDevice                = 5,                            /* 1 if device has been “rounded” into the GrayRgn */
  184.     hasAuxMenuBar                = 6,                            /* 1 if device has an aux menu bar on it */
  185.     burstDevice                    = 7,
  186.     ext32Device                    = 8,
  187.     ramInit                        = 10,                            /*1 if initialized from 'scrn' resource*/
  188.     mainScreen                    = 11,                            /* 1 if main screen */
  189.     allInit                        = 12,                            /* 1 if all devices initialized */
  190.     screenDevice                = 13,                            /*1 if screen device [not used]*/
  191.     noDriver                    = 14,                            /* 1 if no driver for this GDevice */
  192.     screenActive                = 15,                            /*1 if in use*/
  193.     hiliteBit                    = 7,                            /*flag bit in HiliteMode (lowMem flag)*/
  194.     pHiliteBit                    = 0,                            /*flag bit in HiliteMode used with BitClr procedure*/
  195.     defQDColors                    = 127,                            /*resource ID of clut for default QDColors*/
  196.                                                                 /* pixel type */
  197.     RGBDirect                    = 16,                            /* 16 & 32 bits/pixel pixelType value */
  198.                                                                 /* pmVersion values */
  199.     baseAddr32                    = 4                                /*pixmap base address is 32-bit address*/
  200. };
  201.  
  202.  
  203.  
  204. enum {
  205.     sysPatListID                = 0,
  206.     iBeamCursor                    = 1,
  207.     crossCursor                    = 2,
  208.     plusCursor                    = 3,
  209.     watchCursor                    = 4
  210. };
  211.  
  212.  
  213. enum {
  214.     kQDGrafVerbFrame            = 0,
  215.     kQDGrafVerbPaint            = 1,
  216.     kQDGrafVerbErase            = 2,
  217.     kQDGrafVerbInvert            = 3,
  218.     kQDGrafVerbFill                = 4
  219. };
  220.  
  221. #if OLDROUTINENAMES
  222.  
  223. enum {
  224.     frame                        = kQDGrafVerbFrame,
  225.     paint                        = kQDGrafVerbPaint,
  226.     erase                        = kQDGrafVerbErase,
  227.     invert                        = kQDGrafVerbInvert,
  228.     fill                        = kQDGrafVerbFill
  229. };
  230.  
  231. #endif  /* OLDROUTINENAMES */
  232.  
  233. typedef SInt8                             GrafVerb;
  234.  
  235. enum {
  236.     chunky                        = 0,
  237.     chunkyPlanar                = 1,
  238.     planar                        = 2
  239. };
  240.  
  241. typedef SInt8                             PixelType;
  242. typedef short                             Bits16[16];
  243.  
  244. /***************   IMPORTANT NOTE REGARDING Pattern  **************************************
  245.    Patterns were originally defined as:
  246.    
  247.         C:             typedef unsigned char Pattern[8];
  248.         Pascal:        Pattern = PACKED ARRAY [0..7] OF 0..255;
  249.         
  250.    The old array definition of Pattern would cause 68000 based CPU's to crash in certain circum-
  251.    stances. The new struct definition is safe, but may require source code changes to compile.
  252.    Read the details in TechNote "Platforms & Tools" #PT 38.
  253.     
  254. *********************************************************************************************/
  255.  
  256. struct Pattern {
  257.     UInt8                             pat[8];
  258. };
  259. typedef struct Pattern                    Pattern;
  260. /*
  261.  ConstPatternParam is no longer needed.  It was first created when Pattern was an array.
  262.  Now that Pattern is a struct, it is more straight forward to just add the "const" qualifier
  263.  on the parameter type (e.g. "const Pattern * pat" instead of "ConstPatternParam pat").
  264. */
  265.  
  266. typedef const Pattern *                    ConstPatternParam;
  267. typedef Pattern *                        PatPtr;
  268. typedef PatPtr *                        PatHandle;
  269. typedef SignedByte                         QDByte;
  270. typedef QDByte *                        QDPtr;
  271. typedef QDPtr *                            QDHandle;
  272. typedef short                             QDErr;
  273.  
  274. enum {
  275.     singleDevicesBit            = 0,
  276.     dontMatchSeedsBit            = 1,
  277.     allDevicesBit                = 2
  278. };
  279.  
  280.  
  281. enum {
  282.     singleDevices                = 1 << singleDevicesBit,
  283.     dontMatchSeeds                = 1 << dontMatchSeedsBit,
  284.     allDevices                    = 1 << allDevicesBit
  285. };
  286.  
  287. typedef unsigned long                     DeviceLoopFlags;
  288.  
  289. struct BitMap {
  290.     Ptr                             baseAddr;
  291.     short                             rowBytes;
  292.     Rect                             bounds;
  293. };
  294. typedef struct BitMap                    BitMap;
  295. typedef BitMap *                        BitMapPtr;
  296. typedef BitMapPtr *                        BitMapHandle;
  297.  
  298. struct Cursor {
  299.     Bits16                             data;
  300.     Bits16                             mask;
  301.     Point                             hotSpot;
  302. };
  303. typedef struct Cursor                    Cursor;
  304.  
  305. typedef Cursor *                        CursPtr;
  306. typedef CursPtr *                        CursHandle;
  307.  
  308. struct PenState {
  309.     Point                             pnLoc;
  310.     Point                             pnSize;
  311.     short                             pnMode;
  312.     Pattern                         pnPat;
  313. };
  314. typedef struct PenState                    PenState;
  315.  
  316. struct MacRegion {
  317.     unsigned short                     rgnSize;                    /*size in bytes*/
  318.     Rect                             rgnBBox;                    /*enclosing rectangle*/
  319. };
  320. typedef struct MacRegion                MacRegion;
  321.  
  322. typedef MacRegion *                        RgnPtr;
  323. typedef RgnPtr *                        RgnHandle;
  324.  
  325. struct Picture {
  326.     short                             picSize;
  327.     Rect                             picFrame;
  328. };
  329. typedef struct Picture                    Picture;
  330.  
  331. typedef Picture *                        PicPtr;
  332. typedef PicPtr *                        PicHandle;
  333.  
  334. struct MacPolygon {
  335.     short                             polySize;
  336.     Rect                             polyBBox;
  337.     Point                             polyPoints[1];
  338. };
  339. typedef struct MacPolygon                MacPolygon;
  340.  
  341. typedef MacPolygon *                    PolyPtr;
  342. typedef PolyPtr *                        PolyHandle;
  343. typedef CALLBACK_API( void , QDTextProcPtr )(short byteCount, Ptr textBuf, Point numer, Point denom);
  344. typedef CALLBACK_API( void , QDLineProcPtr )(Point newPt);
  345. typedef CALLBACK_API( void , QDRectProcPtr )(GrafVerb verb, Rect *r);
  346. typedef CALLBACK_API( void , QDRRectProcPtr )(GrafVerb verb, Rect *r, short ovalWidth, short ovalHeight);
  347. typedef CALLBACK_API( void , QDOvalProcPtr )(GrafVerb verb, Rect *r);
  348. typedef CALLBACK_API( void , QDArcProcPtr )(GrafVerb verb, Rect *r, short startAngle, short arcAngle);
  349. typedef CALLBACK_API( void , QDPolyProcPtr )(GrafVerb verb, PolyHandle poly);
  350. typedef CALLBACK_API( void , QDRgnProcPtr )(GrafVerb verb, RgnHandle rgn);
  351. typedef CALLBACK_API( void , QDBitsProcPtr )(BitMap *srcBits, Rect *srcRect, Rect *dstRect, short mode, RgnHandle maskRgn);
  352. typedef CALLBACK_API( void , QDCommentProcPtr )(short kind, short dataSize, Handle dataHandle);
  353. typedef CALLBACK_API( short , QDTxMeasProcPtr )(short byteCount, Ptr textAddr, Point *numer, Point *denom, FontInfo *info);
  354. typedef CALLBACK_API( void , QDGetPicProcPtr )(Ptr dataPtr, short byteCount);
  355. typedef CALLBACK_API( void , QDPutPicProcPtr )(Ptr dataPtr, short byteCount);
  356. typedef CALLBACK_API( void , QDOpcodeProcPtr )(Rect *fromRect, Rect *toRect, short opcode, short version);
  357. typedef CALLBACK_API( void , QDJShieldCursorProcPtr )(short left, short top, short right, short bottom);
  358. typedef STACK_UPP_TYPE(QDTextProcPtr)                             QDTextUPP;
  359. typedef STACK_UPP_TYPE(QDLineProcPtr)                             QDLineUPP;
  360. typedef STACK_UPP_TYPE(QDRectProcPtr)                             QDRectUPP;
  361. typedef STACK_UPP_TYPE(QDRRectProcPtr)                             QDRRectUPP;
  362. typedef STACK_UPP_TYPE(QDOvalProcPtr)                             QDOvalUPP;
  363. typedef STACK_UPP_TYPE(QDArcProcPtr)                             QDArcUPP;
  364. typedef STACK_UPP_TYPE(QDPolyProcPtr)                             QDPolyUPP;
  365. typedef STACK_UPP_TYPE(QDRgnProcPtr)                             QDRgnUPP;
  366. typedef STACK_UPP_TYPE(QDBitsProcPtr)                             QDBitsUPP;
  367. typedef STACK_UPP_TYPE(QDCommentProcPtr)                         QDCommentUPP;
  368. typedef STACK_UPP_TYPE(QDTxMeasProcPtr)                         QDTxMeasUPP;
  369. typedef STACK_UPP_TYPE(QDGetPicProcPtr)                         QDGetPicUPP;
  370. typedef STACK_UPP_TYPE(QDPutPicProcPtr)                         QDPutPicUPP;
  371. typedef STACK_UPP_TYPE(QDOpcodeProcPtr)                         QDOpcodeUPP;
  372. typedef STACK_UPP_TYPE(QDJShieldCursorProcPtr)                     QDJShieldCursorUPP;
  373.  
  374. struct QDProcs {
  375.     QDTextUPP                         textProc;
  376.     QDLineUPP                         lineProc;
  377.     QDRectUPP                         rectProc;
  378.     QDRRectUPP                         rRectProc;
  379.     QDOvalUPP                         ovalProc;
  380.     QDArcUPP                         arcProc;
  381.     QDPolyUPP                         polyProc;
  382.     QDRgnUPP                         rgnProc;
  383.     QDBitsUPP                         bitsProc;
  384.     QDCommentUPP                     commentProc;
  385.     QDTxMeasUPP                     txMeasProc;
  386.     QDGetPicUPP                     getPicProc;
  387.     QDPutPicUPP                     putPicProc;
  388. };
  389. typedef struct QDProcs                    QDProcs;
  390. typedef QDProcs *                        QDProcsPtr;
  391. enum { uppQDTextProcInfo = 0x00003F80 };                         /* pascal no_return_value Func(2_bytes, 4_bytes, 4_bytes, 4_bytes) */
  392. enum { uppQDLineProcInfo = 0x000000C0 };                         /* pascal no_return_value Func(4_bytes) */
  393. enum { uppQDRectProcInfo = 0x00000340 };                         /* pascal no_return_value Func(1_byte, 4_bytes) */
  394. enum { uppQDRRectProcInfo = 0x00002B40 };                         /* pascal no_return_value Func(1_byte, 4_bytes, 2_bytes, 2_bytes) */
  395. enum { uppQDOvalProcInfo = 0x00000340 };                         /* pascal no_return_value Func(1_byte, 4_bytes) */
  396. enum { uppQDArcProcInfo = 0x00002B40 };                         /* pascal no_return_value Func(1_byte, 4_bytes, 2_bytes, 2_bytes) */
  397. enum { uppQDPolyProcInfo = 0x00000340 };                         /* pascal no_return_value Func(1_byte, 4_bytes) */
  398. enum { uppQDRgnProcInfo = 0x00000340 };                         /* pascal no_return_value Func(1_byte, 4_bytes) */
  399. enum { uppQDBitsProcInfo = 0x0000EFC0 };                         /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes, 2_bytes, 4_bytes) */
  400. enum { uppQDCommentProcInfo = 0x00000E80 };                     /* pascal no_return_value Func(2_bytes, 2_bytes, 4_bytes) */
  401. enum { uppQDTxMeasProcInfo = 0x0000FFA0 };                         /* pascal 2_bytes Func(2_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  402. enum { uppQDGetPicProcInfo = 0x000002C0 };                         /* pascal no_return_value Func(4_bytes, 2_bytes) */
  403. enum { uppQDPutPicProcInfo = 0x000002C0 };                         /* pascal no_return_value Func(4_bytes, 2_bytes) */
  404. enum { uppQDOpcodeProcInfo = 0x00002BC0 };                         /* pascal no_return_value Func(4_bytes, 4_bytes, 2_bytes, 2_bytes) */
  405. enum { uppQDJShieldCursorProcInfo = 0x00002A80 };                 /* pascal no_return_value Func(2_bytes, 2_bytes, 2_bytes, 2_bytes) */
  406. #define NewQDTextProc(userRoutine)                                 (QDTextUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDTextProcInfo, GetCurrentArchitecture())
  407. #define NewQDLineProc(userRoutine)                                 (QDLineUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDLineProcInfo, GetCurrentArchitecture())
  408. #define NewQDRectProc(userRoutine)                                 (QDRectUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDRectProcInfo, GetCurrentArchitecture())
  409. #define NewQDRRectProc(userRoutine)                             (QDRRectUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDRRectProcInfo, GetCurrentArchitecture())
  410. #define NewQDOvalProc(userRoutine)                                 (QDOvalUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDOvalProcInfo, GetCurrentArchitecture())
  411. #define NewQDArcProc(userRoutine)                                 (QDArcUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDArcProcInfo, GetCurrentArchitecture())
  412. #define NewQDPolyProc(userRoutine)                                 (QDPolyUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDPolyProcInfo, GetCurrentArchitecture())
  413. #define NewQDRgnProc(userRoutine)                                 (QDRgnUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDRgnProcInfo, GetCurrentArchitecture())
  414. #define NewQDBitsProc(userRoutine)                                 (QDBitsUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDBitsProcInfo, GetCurrentArchitecture())
  415. #define NewQDCommentProc(userRoutine)                             (QDCommentUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDCommentProcInfo, GetCurrentArchitecture())
  416. #define NewQDTxMeasProc(userRoutine)                             (QDTxMeasUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDTxMeasProcInfo, GetCurrentArchitecture())
  417. #define NewQDGetPicProc(userRoutine)                             (QDGetPicUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDGetPicProcInfo, GetCurrentArchitecture())
  418. #define NewQDPutPicProc(userRoutine)                             (QDPutPicUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDPutPicProcInfo, GetCurrentArchitecture())
  419. #define NewQDOpcodeProc(userRoutine)                             (QDOpcodeUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDOpcodeProcInfo, GetCurrentArchitecture())
  420. #define NewQDJShieldCursorProc(userRoutine)                     (QDJShieldCursorUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDJShieldCursorProcInfo, GetCurrentArchitecture())
  421. #define CallQDTextProc(userRoutine, byteCount, textBuf, numer, denom)  CALL_FOUR_PARAMETER_UPP((userRoutine), uppQDTextProcInfo, (byteCount), (textBuf), (numer), (denom))
  422. #define CallQDLineProc(userRoutine, newPt)                         CALL_ONE_PARAMETER_UPP((userRoutine), uppQDLineProcInfo, (newPt))
  423. #define CallQDRectProc(userRoutine, verb, r)                     CALL_TWO_PARAMETER_UPP((userRoutine), uppQDRectProcInfo, (verb), (r))
  424. #define CallQDRRectProc(userRoutine, verb, r, ovalWidth, ovalHeight)  CALL_FOUR_PARAMETER_UPP((userRoutine), uppQDRRectProcInfo, (verb), (r), (ovalWidth), (ovalHeight))
  425. #define CallQDOvalProc(userRoutine, verb, r)                     CALL_TWO_PARAMETER_UPP((userRoutine), uppQDOvalProcInfo, (verb), (r))
  426. #define CallQDArcProc(userRoutine, verb, r, startAngle, arcAngle)  CALL_FOUR_PARAMETER_UPP((userRoutine), uppQDArcProcInfo, (verb), (r), (startAngle), (arcAngle))
  427. #define CallQDPolyProc(userRoutine, verb, poly)                 CALL_TWO_PARAMETER_UPP((userRoutine), uppQDPolyProcInfo, (verb), (poly))
  428. #define CallQDRgnProc(userRoutine, verb, rgn)                     CALL_TWO_PARAMETER_UPP((userRoutine), uppQDRgnProcInfo, (verb), (rgn))
  429. #define CallQDBitsProc(userRoutine, srcBits, srcRect, dstRect, mode, maskRgn)  CALL_FIVE_PARAMETER_UPP((userRoutine), uppQDBitsProcInfo, (srcBits), (srcRect), (dstRect), (mode), (maskRgn))
  430. #define CallQDCommentProc(userRoutine, kind, dataSize, dataHandle)  CALL_THREE_PARAMETER_UPP((userRoutine), uppQDCommentProcInfo, (kind), (dataSize), (dataHandle))
  431. #define CallQDTxMeasProc(userRoutine, byteCount, textAddr, numer, denom, info)  CALL_FIVE_PARAMETER_UPP((userRoutine), uppQDTxMeasProcInfo, (byteCount), (textAddr), (numer), (denom), (info))
  432. #define CallQDGetPicProc(userRoutine, dataPtr, byteCount)         CALL_TWO_PARAMETER_UPP((userRoutine), uppQDGetPicProcInfo, (dataPtr), (byteCount))
  433. #define CallQDPutPicProc(userRoutine, dataPtr, byteCount)         CALL_TWO_PARAMETER_UPP((userRoutine), uppQDPutPicProcInfo, (dataPtr), (byteCount))
  434. #define CallQDOpcodeProc(userRoutine, fromRect, toRect, opcode, version)  CALL_FOUR_PARAMETER_UPP((userRoutine), uppQDOpcodeProcInfo, (fromRect), (toRect), (opcode), (version))
  435. #define CallQDJShieldCursorProc(userRoutine, left, top, right, bottom)  CALL_FOUR_PARAMETER_UPP((userRoutine), uppQDJShieldCursorProcInfo, (left), (top), (right), (bottom))
  436.  
  437.  
  438.  
  439. struct GrafPort {
  440.     short                             device;
  441.     BitMap                             portBits;
  442.     Rect                             portRect;
  443.     RgnHandle                         visRgn;
  444.     RgnHandle                         clipRgn;
  445.     Pattern                         bkPat;
  446.     Pattern                         fillPat;
  447.     Point                             pnLoc;
  448.     Point                             pnSize;
  449.     short                             pnMode;
  450.     Pattern                         pnPat;
  451.     short                             pnVis;
  452.     short                             txFont;
  453.     StyleField                         txFace;                        /*StyleField occupies 16-bits, but only first 8-bits are used*/
  454.     UInt8                             txFlags;
  455.     short                             txMode;
  456.     short                             txSize;
  457.     Fixed                             spExtra;
  458.     long                             fgColor;
  459.     long                             bkColor;
  460.     short                             colrBit;
  461.     short                             patStretch;
  462.     Handle                             picSave;
  463.     Handle                             rgnSave;
  464.     Handle                             polySave;
  465.     QDProcsPtr                         grafProcs;
  466. };
  467. typedef struct GrafPort                    GrafPort;
  468.  
  469. typedef GrafPort *                        GrafPtr;
  470.  
  471. /*
  472.  *    This set of definitions "belongs" in Windows.
  473.  *    But, there is a circularity in the headers where Windows includes Controls and
  474.  *    Controls includes Windows. To break the circle, the information
  475.  *    needed by Controls is moved from Windows to Quickdraw.
  476.  */
  477. typedef GrafPtr                         WindowPtr;
  478. typedef WindowPtr                         DialogPtr;
  479. typedef WindowPtr                         WindowRef;
  480. /* DragConstraint constants to pass to DragGray,DragTheRgn, or ConstrainedDragRgn*/
  481. typedef UInt16                             DragConstraint;
  482.  
  483. enum {
  484.     kNoConstraint                = 0,
  485.     kVerticalConstraint            = 1,
  486.     kHorizontalConstraint        = 2
  487. };
  488.  
  489.  
  490. typedef CALLBACK_API( void , DragGrayRgnProcPtr )(void );
  491. /*
  492.  *    Here ends the list of things that "belong" in Windows.
  493.  */
  494.  
  495.  
  496.  
  497. struct RGBColor {
  498.     unsigned short                     red;                        /*magnitude of red component*/
  499.     unsigned short                     green;                        /*magnitude of green component*/
  500.     unsigned short                     blue;                        /*magnitude of blue component*/
  501. };
  502. typedef struct RGBColor                    RGBColor;
  503. typedef RGBColor *                        RGBColorPtr;
  504. typedef RGBColorPtr *                    RGBColorHdl;
  505. typedef CALLBACK_API( Boolean , ColorSearchProcPtr )(RGBColor *rgb, long *position);
  506. typedef CALLBACK_API( Boolean , ColorComplementProcPtr )(RGBColor *rgb);
  507. typedef STACK_UPP_TYPE(DragGrayRgnProcPtr)                         DragGrayRgnUPP;
  508. typedef STACK_UPP_TYPE(ColorSearchProcPtr)                         ColorSearchUPP;
  509. typedef STACK_UPP_TYPE(ColorComplementProcPtr)                     ColorComplementUPP;
  510. enum { uppDragGrayRgnProcInfo = 0x00000000 };                     /* pascal no_return_value Func() */
  511. enum { uppColorSearchProcInfo = 0x000003D0 };                     /* pascal 1_byte Func(4_bytes, 4_bytes) */
  512. enum { uppColorComplementProcInfo = 0x000000D0 };                 /* pascal 1_byte Func(4_bytes) */
  513. #define NewDragGrayRgnProc(userRoutine)                         (DragGrayRgnUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDragGrayRgnProcInfo, GetCurrentArchitecture())
  514. #define NewColorSearchProc(userRoutine)                         (ColorSearchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppColorSearchProcInfo, GetCurrentArchitecture())
  515. #define NewColorComplementProc(userRoutine)                     (ColorComplementUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppColorComplementProcInfo, GetCurrentArchitecture())
  516. #define CallDragGrayRgnProc(userRoutine)                         CALL_ZERO_PARAMETER_UPP((userRoutine), uppDragGrayRgnProcInfo)
  517. #define CallColorSearchProc(userRoutine, rgb, position)         CALL_TWO_PARAMETER_UPP((userRoutine), uppColorSearchProcInfo, (rgb), (position))
  518. #define CallColorComplementProc(userRoutine, rgb)                 CALL_ONE_PARAMETER_UPP((userRoutine), uppColorComplementProcInfo, (rgb))
  519.  
  520. struct ColorSpec {
  521.     short                             value;                        /*index or other value*/
  522.     RGBColor                         rgb;                        /*true color*/
  523. };
  524. typedef struct ColorSpec                ColorSpec;
  525. typedef ColorSpec *                        ColorSpecPtr;
  526.  
  527. typedef ColorSpec                         CSpecArray[1];
  528.  
  529. struct ColorTable {
  530.     long                             ctSeed;                        /*unique identifier for table*/
  531.     short                             ctFlags;                    /*high bit: 0 = PixMap; 1 = device*/
  532.     short                             ctSize;                        /*number of entries in CTTable*/
  533.     CSpecArray                         ctTable;                    /*array [0..0] of ColorSpec*/
  534. };
  535. typedef struct ColorTable                ColorTable;
  536.  
  537. typedef ColorTable *                    CTabPtr;
  538. typedef CTabPtr *                        CTabHandle;
  539.  
  540. struct xColorSpec {
  541.     short                             value;                        /*index or other value*/
  542.     RGBColor                         rgb;                        /*true color*/
  543.     short                             xalpha;
  544. };
  545. typedef struct xColorSpec                xColorSpec;
  546. typedef xColorSpec *                    xColorSpecPtr;
  547.  
  548. typedef xColorSpec                         xCSpecArray[1];
  549.  
  550. struct MatchRec {
  551.     unsigned short                     red;
  552.     unsigned short                     green;
  553.     unsigned short                     blue;
  554.     long                             matchData;
  555. };
  556. typedef struct MatchRec                    MatchRec;
  557. #if OLDPIXMAPSTRUCT
  558.  
  559. struct PixMap {
  560.     Ptr                             baseAddr;                    /*pointer to pixels*/
  561.     short                             rowBytes;                    /*offset to next line*/
  562.     Rect                             bounds;                        /*encloses bitmap*/
  563.     short                             pmVersion;                    /*pixMap version number*/
  564.     short                             packType;                    /*defines packing format*/
  565.     long                             packSize;                    /*length of pixel data*/
  566.     Fixed                             hRes;                        /*horiz. resolution (ppi)*/
  567.     Fixed                             vRes;                        /*vert. resolution (ppi)*/
  568.     short                             pixelType;                    /*defines pixel type*/
  569.     short                             pixelSize;                    /*# bits in pixel*/
  570.     short                             cmpCount;                    /*# components in pixel*/
  571.     short                             cmpSize;                    /*# bits per component*/
  572.     long                             planeBytes;                    /*offset to next plane*/
  573.     CTabHandle                         pmTable;                    /*color map for this pixMap*/
  574.     long                             pmReserved;                    /*for future use. MUST BE 0*/
  575. };
  576. typedef struct PixMap                    PixMap;
  577. #else
  578.  
  579. struct PixMapExtension {
  580.     long                             extSize;                    /*size of struct, duh!*/
  581.     unsigned long                     pmBits;                        /*pixmap attributes bitfield*/
  582.     void *                            pmGD;                        /*this is a GDHandle*/
  583.     unsigned long                     reserved0;                    /*reserved for future use*/
  584.     unsigned long                     reserved1;
  585.     unsigned long                     reserved2;
  586.     unsigned long                     reserved3;
  587. };
  588. typedef struct PixMapExtension            PixMapExtension;
  589.  
  590. typedef PixMapExtension *                PixMapExtPtr;
  591. typedef PixMapExtPtr *                    PixMapExtHandle;
  592.  
  593. struct PixMap {
  594.     Ptr                             baseAddr;                    /*pointer to pixels*/
  595.     short                             rowBytes;                    /*offset to next line*/
  596.     Rect                             bounds;                        /*encloses bitmap*/
  597.     short                             pmVersion;                    /*pixMap version number*/
  598.     short                             packType;                    /*defines packing format*/
  599.     long                             packSize;                    /*length of pixel data*/
  600.     Fixed                             hRes;                        /*horiz. resolution (ppi)*/
  601.     Fixed                             vRes;                        /*vert. resolution (ppi)*/
  602.     short                             pixelType;                    /*defines pixel type*/
  603.     short                             pixelSize;                    /*# bits in pixel*/
  604.     short                             cmpCount;                    /*# components in pixel*/
  605.     short                             cmpSize;                    /*# bits per component*/
  606.     OSType                             pixelFormat;                /*fourCC representation*/
  607.     CTabHandle                         pmTable;                    /*color map for this pixMap*/
  608.     PixMapExtHandle                 pmExt;                        /*Handle to pixMap extension*/
  609. };
  610. typedef struct PixMap                    PixMap;
  611. #endif  /* OLDPIXMAPSTRUCT */
  612.  
  613. typedef PixMap *                        PixMapPtr;
  614. typedef PixMapPtr *                        PixMapHandle;
  615.  
  616. struct PixPat {
  617.     short                             patType;                    /*type of pattern*/
  618.     PixMapHandle                     patMap;                        /*the pattern's pixMap*/
  619.     Handle                             patData;                    /*pixmap's data*/
  620.     Handle                             patXData;                    /*expanded Pattern data*/
  621.     short                             patXValid;                    /*flags whether expanded Pattern valid*/
  622.     Handle                             patXMap;                    /*Handle to expanded Pattern data*/
  623.     Pattern                         pat1Data;                    /*old-Style pattern/RGB color*/
  624. };
  625. typedef struct PixPat                    PixPat;
  626. typedef PixPat *                        PixPatPtr;
  627. typedef PixPatPtr *                        PixPatHandle;
  628.  
  629. struct CCrsr {
  630.     short                             crsrType;                    /*type of cursor*/
  631.     PixMapHandle                     crsrMap;                    /*the cursor's pixmap*/
  632.     Handle                             crsrData;                    /*cursor's data*/
  633.     Handle                             crsrXData;                    /*expanded cursor data*/
  634.     short                             crsrXValid;                    /*depth of expanded data (0 if none)*/
  635.     Handle                             crsrXHandle;                /*future use*/
  636.     Bits16                             crsr1Data;                    /*one-bit cursor*/
  637.     Bits16                             crsrMask;                    /*cursor's mask*/
  638.     Point                             crsrHotSpot;                /*cursor's hotspot*/
  639.     long                             crsrXTable;                    /*private*/
  640.     long                             crsrID;                        /*private*/
  641. };
  642. typedef struct CCrsr                    CCrsr;
  643. typedef CCrsr *                            CCrsrPtr;
  644. typedef CCrsrPtr *                        CCrsrHandle;
  645. #if OLDROUTINELOCATIONS
  646.  
  647. struct CIcon {
  648.     PixMap                             iconPMap;                    /*the icon's pixMap*/
  649.     BitMap                             iconMask;                    /*the icon's mask*/
  650.     BitMap                             iconBMap;                    /*the icon's bitMap*/
  651.     Handle                             iconData;                    /*the icon's data*/
  652.     short                             iconMaskData[1];            /*icon's mask and BitMap data*/
  653. };
  654. typedef struct CIcon                    CIcon;
  655. typedef CIcon *                            CIconPtr;
  656. typedef CIconPtr *                        CIconHandle;
  657. #endif  /* OLDROUTINELOCATIONS */
  658.  
  659.  
  660. struct GammaTbl {
  661.     short                             gVersion;                    /*gamma version number*/
  662.     short                             gType;                        /*gamma data type*/
  663.     short                             gFormulaSize;                /*Formula data size*/
  664.     short                             gChanCnt;                    /*number of channels of data*/
  665.     short                             gDataCnt;                    /*number of values/channel*/
  666.     short                             gDataWidth;                    /*bits/corrected value (data packed to next larger byte size)*/
  667.     short                             gFormulaData[1];            /*data for formulas followed by gamma values*/
  668. };
  669. typedef struct GammaTbl                    GammaTbl;
  670. typedef GammaTbl *                        GammaTblPtr;
  671. typedef GammaTblPtr *                    GammaTblHandle;
  672.  
  673. struct ITab {
  674.     long                             iTabSeed;                    /*copy of CTSeed from source CTable*/
  675.     short                             iTabRes;                    /*bits/channel resolution of iTable*/
  676.     Byte                             iTTable[1];                    /*byte colortable index values*/
  677. };
  678. typedef struct ITab                        ITab;
  679. typedef ITab *                            ITabPtr;
  680. typedef ITabPtr *                        ITabHandle;
  681.  
  682. struct SProcRec {
  683.     Handle                             nxtSrch;                    /*SProcHndl Handle to next SProcRec*/
  684.     ColorSearchUPP                     srchProc;                    /*search procedure proc ptr*/
  685. };
  686. typedef struct SProcRec                    SProcRec;
  687.  
  688. typedef SProcRec *                        SProcPtr;
  689. typedef SProcPtr *                        SProcHndl;
  690.  
  691. struct CProcRec {
  692.     Handle                             nxtComp;                    /*CProcHndl Handle to next CProcRec*/
  693.     ColorComplementUPP                 compProc;                    /*complement procedure proc ptr*/
  694. };
  695. typedef struct CProcRec                    CProcRec;
  696.  
  697. typedef CProcRec *                        CProcPtr;
  698. typedef CProcPtr *                        CProcHndl;
  699.  
  700. struct GDevice {
  701.     short                             gdRefNum;                    /*driver's unit number*/
  702.     short                             gdID;                        /*client ID for search procs*/
  703.     short                             gdType;                        /*fixed/CLUT/direct*/
  704.     ITabHandle                         gdITable;                    /*Handle to inverse lookup table*/
  705.     short                             gdResPref;                    /*preferred resolution of GDITable*/
  706.     SProcHndl                         gdSearchProc;                /*search proc list head*/
  707.     CProcHndl                         gdCompProc;                    /*complement proc list*/
  708.     short                             gdFlags;                    /*grafDevice flags word*/
  709.     PixMapHandle                     gdPMap;                        /*describing pixMap*/
  710.     long                             gdRefCon;                    /*reference value*/
  711.     Handle                             gdNextGD;                    /*GDHandle Handle of next gDevice*/
  712.     Rect                             gdRect;                        /* device's bounds in global coordinates*/
  713.     long                             gdMode;                        /*device's current mode*/
  714.     short                             gdCCBytes;                    /*depth of expanded cursor data*/
  715.     short                             gdCCDepth;                    /*depth of expanded cursor data*/
  716.     Handle                             gdCCXData;                    /*Handle to cursor's expanded data*/
  717.     Handle                             gdCCXMask;                    /*Handle to cursor's expanded mask*/
  718.     Handle                             gdExt;                        /*future use. MUST BE 0*/
  719. };
  720. typedef struct GDevice                    GDevice;
  721.  
  722. typedef GDevice *                        GDPtr;
  723. typedef GDPtr *                            GDHandle;
  724.  
  725. struct GrafVars {
  726.     RGBColor                         rgbOpColor;                    /*color for addPin  subPin and average*/
  727.     RGBColor                         rgbHiliteColor;                /*color for hiliting*/
  728.     Handle                             pmFgColor;                    /*palette Handle for foreground color*/
  729.     short                             pmFgIndex;                    /*index value for foreground*/
  730.     Handle                             pmBkColor;                    /*palette Handle for background color*/
  731.     short                             pmBkIndex;                    /*index value for background*/
  732.     short                             pmFlags;                    /*flags for Palette Manager*/
  733. };
  734. typedef struct GrafVars                    GrafVars;
  735.  
  736. typedef GrafVars *                        GVarPtr;
  737. typedef GVarPtr *                        GVarHandle;
  738.  
  739. struct CQDProcs {
  740.     QDTextUPP                         textProc;
  741.     QDLineUPP                         lineProc;
  742.     QDRectUPP                         rectProc;
  743.     QDRRectUPP                         rRectProc;
  744.     QDOvalUPP                         ovalProc;
  745.     QDArcUPP                         arcProc;
  746.     QDPolyUPP                         polyProc;
  747.     QDRgnUPP                         rgnProc;
  748.     QDBitsUPP                         bitsProc;
  749.     QDCommentUPP                     commentProc;
  750.     QDTxMeasUPP                     txMeasProc;
  751.     QDGetPicUPP                     getPicProc;
  752.     QDPutPicUPP                     putPicProc;
  753.     QDOpcodeUPP                     opcodeProc;                    /*fields added to QDProcs*/
  754.     UniversalProcPtr                 newProc1;
  755.     UniversalProcPtr                 newProc2;
  756.     UniversalProcPtr                 newProc3;
  757.     UniversalProcPtr                 newProc4;
  758.     UniversalProcPtr                 newProc5;
  759.     UniversalProcPtr                 newProc6;
  760. };
  761. typedef struct CQDProcs                    CQDProcs;
  762. typedef CQDProcs *                        CQDProcsPtr;
  763.  
  764. struct CGrafPort {
  765.     short                             device;
  766.     PixMapHandle                     portPixMap;                    /*port's pixel map*/
  767.     short                             portVersion;                /*high 2 bits always set*/
  768.     Handle                             grafVars;                    /*Handle to more fields*/
  769.     short                             chExtra;                    /*character extra*/
  770.     short                             pnLocHFrac;                    /*pen fraction*/
  771.     Rect                             portRect;
  772.     RgnHandle                         visRgn;
  773.     RgnHandle                         clipRgn;
  774.     PixPatHandle                     bkPixPat;                    /*background pattern*/
  775.     RGBColor                         rgbFgColor;                    /*RGB components of fg*/
  776.     RGBColor                         rgbBkColor;                    /*RGB components of bk*/
  777.     Point                             pnLoc;
  778.     Point                             pnSize;
  779.     short                             pnMode;
  780.     PixPatHandle                     pnPixPat;                    /*pen's pattern*/
  781.     PixPatHandle                     fillPixPat;                    /*fill pattern*/
  782.     short                             pnVis;
  783.     short                             txFont;
  784.     StyleField                         txFace;                        /*StyleField occupies 16-bits, but only first 8-bits are used*/
  785.     UInt8                             txFlags;                    /* second 8 bits of StyleField */
  786.     short                             txMode;
  787.     short                             txSize;
  788.     Fixed                             spExtra;
  789.     long                             fgColor;
  790.     long                             bkColor;
  791.     short                             colrBit;
  792.     short                             patStretch;
  793.     Handle                             picSave;
  794.     Handle                             rgnSave;
  795.     Handle                             polySave;
  796.     CQDProcsPtr                     grafProcs;
  797. };
  798. typedef struct CGrafPort                CGrafPort;
  799.  
  800. typedef CGrafPort *                        CGrafPtr;
  801. typedef CGrafPtr                         CWindowPtr;
  802.  
  803. struct ReqListRec {
  804.     short                             reqLSize;                    /*request list size*/
  805.     short                             reqLData[1];                /*request list data*/
  806. };
  807. typedef struct ReqListRec                ReqListRec;
  808.  
  809. struct OpenCPicParams {
  810.     Rect                             srcRect;
  811.     Fixed                             hRes;
  812.     Fixed                             vRes;
  813.     short                             version;
  814.     short                             reserved1;
  815.     long                             reserved2;
  816. };
  817. typedef struct OpenCPicParams            OpenCPicParams;
  818.  
  819. enum {
  820.     kCursorImageMajorVersion    = 0x0001,
  821.     kCursorImageMinorVersion    = 0x0000
  822. };
  823.  
  824.  
  825. struct CursorImageRec {
  826.     UInt16                             majorVersion;
  827.     UInt16                             minorVersion;
  828.     PixMapHandle                     cursorPixMap;
  829.     BitMapHandle                     cursorBitMask;
  830. };
  831. typedef struct CursorImageRec            CursorImageRec;
  832.  
  833. typedef CursorImageRec *                CursorImagePtr;
  834. typedef CALLBACK_API( void , DeviceLoopDrawingProcPtr )(short depth, short deviceFlags, GDHandle targetDevice, long userData);
  835. typedef STACK_UPP_TYPE(DeviceLoopDrawingProcPtr)                 DeviceLoopDrawingUPP;
  836. enum { uppDeviceLoopDrawingProcInfo = 0x00003E80 };             /* pascal no_return_value Func(2_bytes, 2_bytes, 4_bytes, 4_bytes) */
  837. #define NewDeviceLoopDrawingProc(userRoutine)                     (DeviceLoopDrawingUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDeviceLoopDrawingProcInfo, GetCurrentArchitecture())
  838. #define CallDeviceLoopDrawingProc(userRoutine, depth, deviceFlags, targetDevice, userData)  CALL_FOUR_PARAMETER_UPP((userRoutine), uppDeviceLoopDrawingProcInfo, (depth), (deviceFlags), (targetDevice), (userData))
  839.  
  840. struct QDGlobals {
  841.     char                             privates[76];
  842.     long                             randSeed;
  843.     BitMap                             screenBits;
  844.     Cursor                             arrow;
  845.     Pattern                         dkGray;
  846.     Pattern                         ltGray;
  847.     Pattern                         gray;
  848.     Pattern                         black;
  849.     Pattern                         white;
  850.     GrafPtr                         thePort;
  851. };
  852. typedef struct QDGlobals                QDGlobals;
  853. typedef QDGlobals *                        QDGlobalsPtr;
  854. typedef QDGlobalsPtr *                    QDGlobalsHdl;
  855. #if !TARGET_OS_MAC
  856.  
  857. typedef DeviceLoopDrawingProcPtr         NativeDeviceLoopDrawingProcPtr;
  858. #endif  /*  !TARGET_OS_MAC */
  859.  
  860. extern QDGlobals qd;
  861.  
  862.  
  863.  
  864. EXTERN_API( void )
  865. InitGraf                        (void *                    globalPtr)                            ONEWORDINLINE(0xA86E);
  866.  
  867. EXTERN_API( void )
  868. OpenPort                        (GrafPtr                 port)                                ONEWORDINLINE(0xA86F);
  869.  
  870. EXTERN_API( void )
  871. InitPort                        (GrafPtr                 port)                                ONEWORDINLINE(0xA86D);
  872.  
  873. EXTERN_API( void )
  874. ClosePort                        (GrafPtr                 port)                                ONEWORDINLINE(0xA87D);
  875.  
  876. #if !TARGET_OS_MAC
  877. EXTERN_API( OSErr )
  878. LockPortBits                    (GrafPtr                 port);
  879.  
  880. EXTERN_API( OSErr )
  881. UnlockPortBits                    (GrafPtr                 port);
  882.  
  883. EXTERN_API( OSErr )
  884. UpdatePort                        (GrafPtr                 port);
  885.  
  886. EXTERN_API( void *)
  887. GetPortNativeWindow                (GrafPtr                 macPort);
  888.  
  889. EXTERN_API( GrafPtr )
  890. GetNativeWindowPort                (void *                    nativeWindow);
  891.  
  892. EXTERN_API( void *)
  893. MacRegionToNativeRegion            (RgnHandle                 macRegion);
  894.  
  895. EXTERN_API( RgnHandle )
  896. NativeRegionToMacRegion            (void *                    nativeRegion);
  897.  
  898. #if TARGET_OS_WIN32
  899. EXTERN_API( void *)
  900. GetPortHWND                        (GrafPtr                 port);
  901.  
  902. EXTERN_API( GrafPtr )
  903. GetHWNDPort                        (void *                    theHWND);
  904.  
  905. #define GetPortHWND(port)  GetPortNativeWindow(port)
  906. #define GetHWNDPort(theHWND) GetNativeWindowPort(theHWND)
  907. EXTERN_API( void *)
  908. GetPortHDC                        (GrafPtr                 port);
  909.  
  910. EXTERN_API( void *)
  911. GetPortHBITMAP                    (GrafPtr                 port);
  912.  
  913. EXTERN_API( void *)
  914. GetPortHPALETTE                    (GrafPtr                 port);
  915.  
  916. EXTERN_API( void *)
  917. GetPortHFONT                    (GrafPtr                 port);
  918.  
  919. #endif  /* TARGET_OS_WIN32 */
  920.  
  921. #endif  /*  !TARGET_OS_MAC */
  922.  
  923. EXTERN_API( void )
  924. MacSetPort                        (GrafPtr                 port)                                ONEWORDINLINE(0xA873);
  925.  
  926. EXTERN_API( void )
  927. GetPort                            (GrafPtr *                port)                                ONEWORDINLINE(0xA874);
  928.  
  929. EXTERN_API( void )
  930. GrafDevice                        (short                     device)                                ONEWORDINLINE(0xA872);
  931.  
  932. EXTERN_API( void )
  933. SetPortBits                        (const BitMap *            bm)                                    ONEWORDINLINE(0xA875);
  934.  
  935. EXTERN_API( void )
  936. PortSize                        (short                     width,
  937.                                  short                     height)                                ONEWORDINLINE(0xA876);
  938.  
  939. EXTERN_API( void )
  940. MovePortTo                        (short                     leftGlobal,
  941.                                  short                     topGlobal)                            ONEWORDINLINE(0xA877);
  942.  
  943. EXTERN_API( void )
  944. SetOrigin                        (short                     h,
  945.                                  short                     v)                                    ONEWORDINLINE(0xA878);
  946.  
  947. EXTERN_API( void )
  948. SetClip                            (RgnHandle                 rgn)                                ONEWORDINLINE(0xA879);
  949.  
  950. EXTERN_API( void )
  951. GetClip                            (RgnHandle                 rgn)                                ONEWORDINLINE(0xA87A);
  952.  
  953. EXTERN_API( void )
  954. ClipRect                        (const Rect *            r)                                    ONEWORDINLINE(0xA87B);
  955.  
  956. EXTERN_API( void )
  957. BackPat                            (const Pattern *        pat)                                ONEWORDINLINE(0xA87C);
  958.  
  959. EXTERN_API( void )
  960. InitCursor                        (void)                                                        ONEWORDINLINE(0xA850);
  961.  
  962. EXTERN_API( void )
  963. MacSetCursor                    (const Cursor *            crsr)                                ONEWORDINLINE(0xA851);
  964.  
  965. EXTERN_API( void )
  966. HideCursor                        (void)                                                        ONEWORDINLINE(0xA852);
  967.  
  968. EXTERN_API( void )
  969. MacShowCursor                    (void)                                                        ONEWORDINLINE(0xA853);
  970.  
  971. EXTERN_API( void )
  972. ObscureCursor                    (void)                                                        ONEWORDINLINE(0xA856);
  973.  
  974. EXTERN_API( void )
  975. HidePen                            (void)                                                        ONEWORDINLINE(0xA896);
  976.  
  977. EXTERN_API( void )
  978. ShowPen                            (void)                                                        ONEWORDINLINE(0xA897);
  979.  
  980. EXTERN_API( void )
  981. GetPen                            (Point *                pt)                                    ONEWORDINLINE(0xA89A);
  982.  
  983. EXTERN_API( void )
  984. GetPenState                        (PenState *                pnState)                            ONEWORDINLINE(0xA898);
  985.  
  986. EXTERN_API( void )
  987. SetPenState                        (const PenState *        pnState)                            ONEWORDINLINE(0xA899);
  988.  
  989. EXTERN_API( void )
  990. PenSize                            (short                     width,
  991.                                  short                     height)                                ONEWORDINLINE(0xA89B);
  992.  
  993. EXTERN_API( void )
  994. PenMode                            (short                     mode)                                ONEWORDINLINE(0xA89C);
  995.  
  996. EXTERN_API( void )
  997. PenPat                            (const Pattern *        pat)                                ONEWORDINLINE(0xA89D);
  998.  
  999. EXTERN_API( void )
  1000. PenNormal                        (void)                                                        ONEWORDINLINE(0xA89E);
  1001.  
  1002. EXTERN_API( void )
  1003. MoveTo                            (short                     h,
  1004.                                  short                     v)                                    ONEWORDINLINE(0xA893);
  1005.  
  1006. EXTERN_API( void )
  1007. Move                            (short                     dh,
  1008.                                  short                     dv)                                    ONEWORDINLINE(0xA894);
  1009.  
  1010. EXTERN_API( void )
  1011. MacLineTo                        (short                     h,
  1012.                                  short                     v)                                    ONEWORDINLINE(0xA891);
  1013.  
  1014. EXTERN_API( void )
  1015. Line                            (short                     dh,
  1016.                                  short                     dv)                                    ONEWORDINLINE(0xA892);
  1017.  
  1018. EXTERN_API( void )
  1019. ForeColor                        (long                     color)                                ONEWORDINLINE(0xA862);
  1020.  
  1021. EXTERN_API( void )
  1022. BackColor                        (long                     color)                                ONEWORDINLINE(0xA863);
  1023.  
  1024. EXTERN_API( void )
  1025. ColorBit                        (short                     whichBit)                            ONEWORDINLINE(0xA864);
  1026.  
  1027. EXTERN_API( void )
  1028. MacSetRect                        (Rect *                    r,
  1029.                                  short                     left,
  1030.                                  short                     top,
  1031.                                  short                     right,
  1032.                                  short                     bottom)                                ONEWORDINLINE(0xA8A7);
  1033.  
  1034. EXTERN_API( void )
  1035. MacOffsetRect                    (Rect *                    r,
  1036.                                  short                     dh,
  1037.                                  short                     dv)                                    ONEWORDINLINE(0xA8A8);
  1038.  
  1039. EXTERN_API( void )
  1040. MacInsetRect                    (Rect *                    r,
  1041.                                  short                     dh,
  1042.                                  short                     dv)                                    ONEWORDINLINE(0xA8A9);
  1043.  
  1044. EXTERN_API( Boolean )
  1045. SectRect                        (const Rect *            src1,
  1046.                                  const Rect *            src2,
  1047.                                  Rect *                    dstRect)                            ONEWORDINLINE(0xA8AA);
  1048.  
  1049. EXTERN_API( void )
  1050. MacUnionRect                    (const Rect *            src1,
  1051.                                  const Rect *            src2,
  1052.                                  Rect *                    dstRect)                            ONEWORDINLINE(0xA8AB);
  1053.  
  1054. EXTERN_API( Boolean )
  1055. MacEqualRect                    (const Rect *            rect1,
  1056.                                  const Rect *            rect2)                                ONEWORDINLINE(0xA8A6);
  1057.  
  1058. EXTERN_API( Boolean )
  1059. EmptyRect                        (const Rect *            r)                                    ONEWORDINLINE(0xA8AE);
  1060.  
  1061. EXTERN_API( void )
  1062. MacFrameRect                    (const Rect *            r)                                    ONEWORDINLINE(0xA8A1);
  1063.  
  1064. EXTERN_API( void )
  1065. PaintRect                        (const Rect *            r)                                    ONEWORDINLINE(0xA8A2);
  1066.  
  1067. EXTERN_API( void )
  1068. EraseRect                        (const Rect *            r)                                    ONEWORDINLINE(0xA8A3);
  1069.  
  1070. EXTERN_API( void )
  1071. MacInvertRect                    (const Rect *            r)                                    ONEWORDINLINE(0xA8A4);
  1072.  
  1073. EXTERN_API( void )
  1074. MacFillRect                        (const Rect *            r,
  1075.                                  const Pattern *        pat)                                ONEWORDINLINE(0xA8A5);
  1076.  
  1077. EXTERN_API( void )
  1078. FrameOval                        (const Rect *            r)                                    ONEWORDINLINE(0xA8B7);
  1079.  
  1080. EXTERN_API( void )
  1081. PaintOval                        (const Rect *            r)                                    ONEWORDINLINE(0xA8B8);
  1082.  
  1083. EXTERN_API( void )
  1084. EraseOval                        (const Rect *            r)                                    ONEWORDINLINE(0xA8B9);
  1085.  
  1086. EXTERN_API( void )
  1087. InvertOval                        (const Rect *            r)                                    ONEWORDINLINE(0xA8BA);
  1088.  
  1089. EXTERN_API( void )
  1090. FillOval                        (const Rect *            r,
  1091.                                  const Pattern *        pat)                                ONEWORDINLINE(0xA8BB);
  1092.  
  1093. EXTERN_API( void )
  1094. FrameRoundRect                    (const Rect *            r,
  1095.                                  short                     ovalWidth,
  1096.                                  short                     ovalHeight)                            ONEWORDINLINE(0xA8B0);
  1097.  
  1098. EXTERN_API( void )
  1099. PaintRoundRect                    (const Rect *            r,
  1100.                                  short                     ovalWidth,
  1101.                                  short                     ovalHeight)                            ONEWORDINLINE(0xA8B1);
  1102.  
  1103. EXTERN_API( void )
  1104. EraseRoundRect                    (const Rect *            r,
  1105.                                  short                     ovalWidth,
  1106.                                  short                     ovalHeight)                            ONEWORDINLINE(0xA8B2);
  1107.  
  1108. EXTERN_API( void )
  1109. InvertRoundRect                    (const Rect *            r,
  1110.                                  short                     ovalWidth,
  1111.                                  short                     ovalHeight)                            ONEWORDINLINE(0xA8B3);
  1112.  
  1113. EXTERN_API( void )
  1114. FillRoundRect                    (const Rect *            r,
  1115.                                  short                     ovalWidth,
  1116.                                  short                     ovalHeight,
  1117.                                  const Pattern *        pat)                                ONEWORDINLINE(0xA8B4);
  1118.  
  1119. EXTERN_API( void )
  1120. FrameArc                        (const Rect *            r,
  1121.                                  short                     startAngle,
  1122.                                  short                     arcAngle)                            ONEWORDINLINE(0xA8BE);
  1123.  
  1124. EXTERN_API( void )
  1125. PaintArc                        (const Rect *            r,
  1126.                                  short                     startAngle,
  1127.                                  short                     arcAngle)                            ONEWORDINLINE(0xA8BF);
  1128.  
  1129. EXTERN_API( void )
  1130. EraseArc                        (const Rect *            r,
  1131.                                  short                     startAngle,
  1132.                                  short                     arcAngle)                            ONEWORDINLINE(0xA8C0);
  1133.  
  1134. EXTERN_API( void )
  1135. InvertArc                        (const Rect *            r,
  1136.                                  short                     startAngle,
  1137.                                  short                     arcAngle)                            ONEWORDINLINE(0xA8C1);
  1138.  
  1139. EXTERN_API( void )
  1140. FillArc                            (const Rect *            r,
  1141.                                  short                     startAngle,
  1142.                                  short                     arcAngle,
  1143.                                  const Pattern *        pat)                                ONEWORDINLINE(0xA8C2);
  1144.  
  1145. EXTERN_API( RgnHandle )
  1146. NewRgn                            (void)                                                        ONEWORDINLINE(0xA8D8);
  1147.  
  1148. EXTERN_API( void )
  1149. OpenRgn                            (void)                                                        ONEWORDINLINE(0xA8DA);
  1150.  
  1151. EXTERN_API( void )
  1152. CloseRgn                        (RgnHandle                 dstRgn)                                ONEWORDINLINE(0xA8DB);
  1153.  
  1154. EXTERN_API( OSErr )
  1155. BitMapToRegion                    (RgnHandle                 region,
  1156.                                  const BitMap *            bMap)                                ONEWORDINLINE(0xA8D7);
  1157.  
  1158. EXTERN_API( void )
  1159. DisposeRgn                        (RgnHandle                 rgn)                                ONEWORDINLINE(0xA8D9);
  1160.  
  1161. EXTERN_API( void )
  1162. MacCopyRgn                        (RgnHandle                 srcRgn,
  1163.                                  RgnHandle                 dstRgn)                                ONEWORDINLINE(0xA8DC);
  1164.  
  1165. EXTERN_API( void )
  1166. SetEmptyRgn                        (RgnHandle                 rgn)                                ONEWORDINLINE(0xA8DD);
  1167.  
  1168. EXTERN_API( void )
  1169. MacSetRectRgn                    (RgnHandle                 rgn,
  1170.                                  short                     left,
  1171.                                  short                     top,
  1172.                                  short                     right,
  1173.                                  short                     bottom)                                ONEWORDINLINE(0xA8DE);
  1174.  
  1175. EXTERN_API( void )
  1176. RectRgn                            (RgnHandle                 rgn,
  1177.                                  const Rect *            r)                                    ONEWORDINLINE(0xA8DF);
  1178.  
  1179. EXTERN_API( void )
  1180. MacOffsetRgn                    (RgnHandle                 rgn,
  1181.                                  short                     dh,
  1182.                                  short                     dv)                                    ONEWORDINLINE(0xA8E0);
  1183.  
  1184. EXTERN_API( void )
  1185. InsetRgn                        (RgnHandle                 rgn,
  1186.                                  short                     dh,
  1187.                                  short                     dv)                                    ONEWORDINLINE(0xA8E1);
  1188.  
  1189. EXTERN_API( void )
  1190. SectRgn                            (RgnHandle                 srcRgnA,
  1191.                                  RgnHandle                 srcRgnB,
  1192.                                  RgnHandle                 dstRgn)                                ONEWORDINLINE(0xA8E4);
  1193.  
  1194. EXTERN_API( void )
  1195. MacUnionRgn                        (RgnHandle                 srcRgnA,
  1196.                                  RgnHandle                 srcRgnB,
  1197.                                  RgnHandle                 dstRgn)                                ONEWORDINLINE(0xA8E5);
  1198.  
  1199. EXTERN_API( void )
  1200. DiffRgn                            (RgnHandle                 srcRgnA,
  1201.                                  RgnHandle                 srcRgnB,
  1202.                                  RgnHandle                 dstRgn)                                ONEWORDINLINE(0xA8E6);
  1203.  
  1204. EXTERN_API( void )
  1205. MacXorRgn                        (RgnHandle                 srcRgnA,
  1206.                                  RgnHandle                 srcRgnB,
  1207.                                  RgnHandle                 dstRgn)                                ONEWORDINLINE(0xA8E7);
  1208.  
  1209. EXTERN_API( Boolean )
  1210. RectInRgn                        (const Rect *            r,
  1211.                                  RgnHandle                 rgn)                                ONEWORDINLINE(0xA8E9);
  1212.  
  1213. EXTERN_API( Boolean )
  1214. MacEqualRgn                        (RgnHandle                 rgnA,
  1215.                                  RgnHandle                 rgnB)                                ONEWORDINLINE(0xA8E3);
  1216.  
  1217. EXTERN_API( Boolean )
  1218. EmptyRgn                        (RgnHandle                 rgn)                                ONEWORDINLINE(0xA8E2);
  1219.  
  1220. EXTERN_API( void )
  1221. MacFrameRgn                        (RgnHandle                 rgn)                                ONEWORDINLINE(0xA8D2);
  1222.  
  1223. EXTERN_API( void )
  1224. MacPaintRgn                        (RgnHandle                 rgn)                                ONEWORDINLINE(0xA8D3);
  1225.  
  1226. EXTERN_API( void )
  1227. EraseRgn                        (RgnHandle                 rgn)                                ONEWORDINLINE(0xA8D4);
  1228.  
  1229. EXTERN_API( void )
  1230. MacInvertRgn                    (RgnHandle                 rgn)                                ONEWORDINLINE(0xA8D5);
  1231.  
  1232. EXTERN_API( void )
  1233. MacFillRgn                        (RgnHandle                 rgn,
  1234.                                  const Pattern *        pat)                                ONEWORDINLINE(0xA8D6);
  1235.  
  1236. EXTERN_API( void )
  1237. ScrollRect                        (const Rect *            r,
  1238.                                  short                     dh,
  1239.                                  short                     dv,
  1240.                                  RgnHandle                 updateRgn)                            ONEWORDINLINE(0xA8EF);
  1241.  
  1242. EXTERN_API( void )
  1243. CopyBits                        (const BitMap *            srcBits,
  1244.                                  const BitMap *            dstBits,
  1245.                                  const Rect *            srcRect,
  1246.                                  const Rect *            dstRect,
  1247.                                  short                     mode,
  1248.                                  RgnHandle                 maskRgn)                            ONEWORDINLINE(0xA8EC);
  1249.  
  1250. EXTERN_API( void )
  1251. SeedFill                        (const void *            srcPtr,
  1252.                                  void *                    dstPtr,
  1253.                                  short                     srcRow,
  1254.                                  short                     dstRow,
  1255.                                  short                     height,
  1256.                                  short                     words,
  1257.                                  short                     seedH,
  1258.                                  short                     seedV)                                ONEWORDINLINE(0xA839);
  1259.  
  1260. EXTERN_API( void )
  1261. CalcMask                        (const void *            srcPtr,
  1262.                                  void *                    dstPtr,
  1263.                                  short                     srcRow,
  1264.                                  short                     dstRow,
  1265.                                  short                     height,
  1266.                                  short                     words)                                ONEWORDINLINE(0xA838);
  1267.  
  1268. EXTERN_API( void )
  1269. CopyMask                        (const BitMap *            srcBits,
  1270.                                  const BitMap *            maskBits,
  1271.                                  const BitMap *            dstBits,
  1272.                                  const Rect *            srcRect,
  1273.                                  const Rect *            maskRect,
  1274.                                  const Rect *            dstRect)                            ONEWORDINLINE(0xA817);
  1275.  
  1276. EXTERN_API( PicHandle )
  1277. OpenPicture                        (const Rect *            picFrame)                            ONEWORDINLINE(0xA8F3);
  1278.  
  1279. EXTERN_API( void )
  1280. PicComment                        (short                     kind,
  1281.                                  short                     dataSize,
  1282.                                  Handle                 dataHandle)                            ONEWORDINLINE(0xA8F2);
  1283.  
  1284. EXTERN_API( void )
  1285. ClosePicture                    (void)                                                        ONEWORDINLINE(0xA8F4);
  1286.  
  1287. EXTERN_API( void )
  1288. DrawPicture                        (PicHandle                 myPicture,
  1289.                                  const Rect *            dstRect)                            ONEWORDINLINE(0xA8F6);
  1290.  
  1291. EXTERN_API( void )
  1292. KillPicture                        (PicHandle                 myPicture)                            ONEWORDINLINE(0xA8F5);
  1293.  
  1294. EXTERN_API( PolyHandle )
  1295. OpenPoly                        (void)                                                        ONEWORDINLINE(0xA8CB);
  1296.  
  1297. EXTERN_API( void )
  1298. ClosePoly                        (void)                                                        ONEWORDINLINE(0xA8CC);
  1299.  
  1300. EXTERN_API( void )
  1301. KillPoly                        (PolyHandle             poly)                                ONEWORDINLINE(0xA8CD);
  1302.  
  1303. EXTERN_API( void )
  1304. OffsetPoly                        (PolyHandle             poly,
  1305.                                  short                     dh,
  1306.                                  short                     dv)                                    ONEWORDINLINE(0xA8CE);
  1307.  
  1308. EXTERN_API( void )
  1309. FramePoly                        (PolyHandle             poly)                                ONEWORDINLINE(0xA8C6);
  1310.  
  1311. EXTERN_API( void )
  1312. PaintPoly                        (PolyHandle             poly)                                ONEWORDINLINE(0xA8C7);
  1313.  
  1314. EXTERN_API( void )
  1315. ErasePoly                        (PolyHandle             poly)                                ONEWORDINLINE(0xA8C8);
  1316.  
  1317. EXTERN_API( void )
  1318. InvertPoly                        (PolyHandle             poly)                                ONEWORDINLINE(0xA8C9);
  1319.  
  1320. EXTERN_API( void )
  1321. FillPoly                        (PolyHandle             poly,
  1322.                                  const Pattern *        pat)                                ONEWORDINLINE(0xA8CA);
  1323.  
  1324. EXTERN_API( void )
  1325. SetPt                            (Point *                pt,
  1326.                                  short                     h,
  1327.                                  short                     v)                                    ONEWORDINLINE(0xA880);
  1328.  
  1329. EXTERN_API( void )
  1330. LocalToGlobal                    (Point *                pt)                                    ONEWORDINLINE(0xA870);
  1331.  
  1332. EXTERN_API( void )
  1333. GlobalToLocal                    (Point *                pt)                                    ONEWORDINLINE(0xA871);
  1334.  
  1335. EXTERN_API( short )
  1336. Random                            (void)                                                        ONEWORDINLINE(0xA861);
  1337.  
  1338. EXTERN_API( void )
  1339. StuffHex                        (void *                    thingPtr,
  1340.                                  ConstStr255Param         s)                                    ONEWORDINLINE(0xA866);
  1341.  
  1342. EXTERN_API( Boolean )
  1343. MacGetPixel                        (short                     h,
  1344.                                  short                     v)                                    ONEWORDINLINE(0xA865);
  1345.  
  1346. EXTERN_API( void )
  1347. ScalePt                            (Point *                pt,
  1348.                                  const Rect *            srcRect,
  1349.                                  const Rect *            dstRect)                            ONEWORDINLINE(0xA8F8);
  1350.  
  1351. EXTERN_API( void )
  1352. MapPt                            (Point *                pt,
  1353.                                  const Rect *            srcRect,
  1354.                                  const Rect *            dstRect)                            ONEWORDINLINE(0xA8F9);
  1355.  
  1356. EXTERN_API( void )
  1357. MapRect                            (Rect *                    r,
  1358.                                  const Rect *            srcRect,
  1359.                                  const Rect *            dstRect)                            ONEWORDINLINE(0xA8FA);
  1360.  
  1361. EXTERN_API( void )
  1362. MapRgn                            (RgnHandle                 rgn,
  1363.                                  const Rect *            srcRect,
  1364.                                  const Rect *            dstRect)                            ONEWORDINLINE(0xA8FB);
  1365.  
  1366. EXTERN_API( void )
  1367. MapPoly                            (PolyHandle             poly,
  1368.                                  const Rect *            srcRect,
  1369.                                  const Rect *            dstRect)                            ONEWORDINLINE(0xA8FC);
  1370.  
  1371. EXTERN_API( void )
  1372. SetStdProcs                        (QDProcs *                procs)                                ONEWORDINLINE(0xA8EA);
  1373.  
  1374. EXTERN_API( void )
  1375. StdRect                            (GrafVerb                 verb,
  1376.                                  const Rect *            r)                                    ONEWORDINLINE(0xA8A0);
  1377.  
  1378. EXTERN_API( void )
  1379. StdRRect                        (GrafVerb                 verb,
  1380.                                  const Rect *            r,
  1381.                                  short                     ovalWidth,
  1382.                                  short                     ovalHeight)                            ONEWORDINLINE(0xA8AF);
  1383.  
  1384. EXTERN_API( void )
  1385. StdOval                            (GrafVerb                 verb,
  1386.                                  const Rect *            r)                                    ONEWORDINLINE(0xA8B6);
  1387.  
  1388. EXTERN_API( void )
  1389. StdArc                            (GrafVerb                 verb,
  1390.                                  const Rect *            r,
  1391.                                  short                     startAngle,
  1392.                                  short                     arcAngle)                            ONEWORDINLINE(0xA8BD);
  1393.  
  1394. EXTERN_API( void )
  1395. StdPoly                            (GrafVerb                 verb,
  1396.                                  PolyHandle             poly)                                ONEWORDINLINE(0xA8C5);
  1397.  
  1398. EXTERN_API( void )
  1399. StdRgn                            (GrafVerb                 verb,
  1400.                                  RgnHandle                 rgn)                                ONEWORDINLINE(0xA8D1);
  1401.  
  1402. EXTERN_API( void )
  1403. StdBits                            (const BitMap *            srcBits,
  1404.                                  const Rect *            srcRect,
  1405.                                  const Rect *            dstRect,
  1406.                                  short                     mode,
  1407.                                  RgnHandle                 maskRgn)                            ONEWORDINLINE(0xA8EB);
  1408.  
  1409. EXTERN_API( void )
  1410. StdComment                        (short                     kind,
  1411.                                  short                     dataSize,
  1412.                                  Handle                 dataHandle)                            ONEWORDINLINE(0xA8F1);
  1413.  
  1414. EXTERN_API( void )
  1415. StdGetPic                        (void *                    dataPtr,
  1416.                                  short                     byteCount)                            ONEWORDINLINE(0xA8EE);
  1417.  
  1418. EXTERN_API( void )
  1419. StdPutPic                        (const void *            dataPtr,
  1420.                                  short                     byteCount)                            ONEWORDINLINE(0xA8F0);
  1421.  
  1422. EXTERN_API( void )
  1423. StdOpcode                        (const Rect *            fromRect,
  1424.                                  const Rect *            toRect,
  1425.                                  UInt16                 opcode,
  1426.                                  SInt16                 version)                            ONEWORDINLINE(0xABF8);
  1427.  
  1428. EXTERN_API( void )
  1429. AddPt                            (Point                     src,
  1430.                                  Point *                dst)                                ONEWORDINLINE(0xA87E);
  1431.  
  1432. EXTERN_API( Boolean )
  1433. EqualPt                            (Point                     pt1,
  1434.                                  Point                     pt2)                                ONEWORDINLINE(0xA881);
  1435.  
  1436. EXTERN_API( Boolean )
  1437. MacPtInRect                        (Point                     pt,
  1438.                                  const Rect *            r)                                    ONEWORDINLINE(0xA8AD);
  1439.  
  1440. EXTERN_API( void )
  1441. Pt2Rect                            (Point                     pt1,
  1442.                                  Point                     pt2,
  1443.                                  Rect *                    dstRect)                            ONEWORDINLINE(0xA8AC);
  1444.  
  1445. EXTERN_API( void )
  1446. PtToAngle                        (const Rect *            r,
  1447.                                  Point                     pt,
  1448.                                  short *                angle)                                ONEWORDINLINE(0xA8C3);
  1449.  
  1450. EXTERN_API( void )
  1451. SubPt                            (Point                     src,
  1452.                                  Point *                dst)                                ONEWORDINLINE(0xA87F);
  1453.  
  1454. EXTERN_API( Boolean )
  1455. PtInRgn                            (Point                     pt,
  1456.                                  RgnHandle                 rgn)                                ONEWORDINLINE(0xA8E8);
  1457.  
  1458. EXTERN_API( void )
  1459. StdLine                            (Point                     newPt)                                ONEWORDINLINE(0xA890);
  1460.  
  1461. EXTERN_API( void )
  1462. OpenCPort                        (CGrafPtr                 port)                                ONEWORDINLINE(0xAA00);
  1463.  
  1464. EXTERN_API( void )
  1465. InitCPort                        (CGrafPtr                 port)                                ONEWORDINLINE(0xAA01);
  1466.  
  1467. EXTERN_API( void )
  1468. CloseCPort                        (CGrafPtr                 port)                                ONEWORDINLINE(0xAA02);
  1469.  
  1470. EXTERN_API( PixMapHandle )
  1471. NewPixMap                        (void)                                                        ONEWORDINLINE(0xAA03);
  1472.  
  1473. EXTERN_API( void )
  1474. DisposePixMap                    (PixMapHandle             pm)                                    ONEWORDINLINE(0xAA04);
  1475.  
  1476. EXTERN_API( void )
  1477. CopyPixMap                        (PixMapHandle             srcPM,
  1478.                                  PixMapHandle             dstPM)                                ONEWORDINLINE(0xAA05);
  1479.  
  1480. EXTERN_API( PixPatHandle )
  1481. NewPixPat                        (void)                                                        ONEWORDINLINE(0xAA07);
  1482.  
  1483. EXTERN_API( void )
  1484. DisposePixPat                    (PixPatHandle             pp)                                    ONEWORDINLINE(0xAA08);
  1485.  
  1486. EXTERN_API( void )
  1487. CopyPixPat                        (PixPatHandle             srcPP,
  1488.                                  PixPatHandle             dstPP)                                ONEWORDINLINE(0xAA09);
  1489.  
  1490. EXTERN_API( void )
  1491. PenPixPat                        (PixPatHandle             pp)                                    ONEWORDINLINE(0xAA0A);
  1492.  
  1493. EXTERN_API( void )
  1494. BackPixPat                        (PixPatHandle             pp)                                    ONEWORDINLINE(0xAA0B);
  1495.  
  1496. EXTERN_API( PixPatHandle )
  1497. GetPixPat                        (short                     patID)                                ONEWORDINLINE(0xAA0C);
  1498.  
  1499. EXTERN_API( void )
  1500. MakeRGBPat                        (PixPatHandle             pp,
  1501.                                  const RGBColor *        myColor)                            ONEWORDINLINE(0xAA0D);
  1502.  
  1503. EXTERN_API( void )
  1504. FillCRect                        (const Rect *            r,
  1505.                                  PixPatHandle             pp)                                    ONEWORDINLINE(0xAA0E);
  1506.  
  1507. EXTERN_API( void )
  1508. FillCOval                        (const Rect *            r,
  1509.                                  PixPatHandle             pp)                                    ONEWORDINLINE(0xAA0F);
  1510.  
  1511. EXTERN_API( void )
  1512. FillCRoundRect                    (const Rect *            r,
  1513.                                  short                     ovalWidth,
  1514.                                  short                     ovalHeight,
  1515.                                  PixPatHandle             pp)                                    ONEWORDINLINE(0xAA10);
  1516.  
  1517. EXTERN_API( void )
  1518. FillCArc                        (const Rect *            r,
  1519.                                  short                     startAngle,
  1520.                                  short                     arcAngle,
  1521.                                  PixPatHandle             pp)                                    ONEWORDINLINE(0xAA11);
  1522.  
  1523. EXTERN_API( void )
  1524. FillCRgn                        (RgnHandle                 rgn,
  1525.                                  PixPatHandle             pp)                                    ONEWORDINLINE(0xAA12);
  1526.  
  1527. EXTERN_API( void )
  1528. FillCPoly                        (PolyHandle             poly,
  1529.                                  PixPatHandle             pp)                                    ONEWORDINLINE(0xAA13);
  1530.  
  1531. EXTERN_API( void )
  1532. RGBForeColor                    (const RGBColor *        color)                                ONEWORDINLINE(0xAA14);
  1533.  
  1534. EXTERN_API( void )
  1535. RGBBackColor                    (const RGBColor *        color)                                ONEWORDINLINE(0xAA15);
  1536.  
  1537. EXTERN_API( void )
  1538. SetCPixel                        (short                     h,
  1539.                                  short                     v,
  1540.                                  const RGBColor *        cPix)                                ONEWORDINLINE(0xAA16);
  1541.  
  1542. EXTERN_API( void )
  1543. SetPortPix                        (PixMapHandle             pm)                                    ONEWORDINLINE(0xAA06);
  1544.  
  1545. EXTERN_API( void )
  1546. GetCPixel                        (short                     h,
  1547.                                  short                     v,
  1548.                                  RGBColor *                cPix)                                ONEWORDINLINE(0xAA17);
  1549.  
  1550. EXTERN_API( void )
  1551. GetForeColor                    (RGBColor *                color)                                ONEWORDINLINE(0xAA19);
  1552.  
  1553. EXTERN_API( void )
  1554. GetBackColor                    (RGBColor *                color)                                ONEWORDINLINE(0xAA1A);
  1555.  
  1556. EXTERN_API( void )
  1557. SeedCFill                        (const BitMap *            srcBits,
  1558.                                  const BitMap *            dstBits,
  1559.                                  const Rect *            srcRect,
  1560.                                  const Rect *            dstRect,
  1561.                                  short                     seedH,
  1562.                                  short                     seedV,
  1563.                                  ColorSearchUPP         matchProc,
  1564.                                  long                     matchData)                            ONEWORDINLINE(0xAA50);
  1565.  
  1566. EXTERN_API( void )
  1567. CalcCMask                        (const BitMap *            srcBits,
  1568.                                  const BitMap *            dstBits,
  1569.                                  const Rect *            srcRect,
  1570.                                  const Rect *            dstRect,
  1571.                                  const RGBColor *        seedRGB,
  1572.                                  ColorSearchUPP         matchProc,
  1573.                                  long                     matchData)                            ONEWORDINLINE(0xAA4F);
  1574.  
  1575. EXTERN_API( PicHandle )
  1576. OpenCPicture                    (const OpenCPicParams *    newHeader)                            ONEWORDINLINE(0xAA20);
  1577.  
  1578. EXTERN_API( void )
  1579. OpColor                            (const RGBColor *        color)                                ONEWORDINLINE(0xAA21);
  1580.  
  1581. EXTERN_API( void )
  1582. HiliteColor                        (const RGBColor *        color)                                ONEWORDINLINE(0xAA22);
  1583.  
  1584. EXTERN_API( void )
  1585. DisposeCTable                    (CTabHandle             cTable)                                ONEWORDINLINE(0xAA24);
  1586.  
  1587. EXTERN_API( CTabHandle )
  1588. GetCTable                        (short                     ctID)                                ONEWORDINLINE(0xAA18);
  1589.  
  1590. EXTERN_API( CCrsrHandle )
  1591. GetCCursor                        (short                     crsrID)                                ONEWORDINLINE(0xAA1B);
  1592.  
  1593. EXTERN_API( void )
  1594. SetCCursor                        (CCrsrHandle             cCrsr)                                ONEWORDINLINE(0xAA1C);
  1595.  
  1596. EXTERN_API( void )
  1597. AllocCursor                        (void)                                                        ONEWORDINLINE(0xAA1D);
  1598.  
  1599. EXTERN_API( void )
  1600. DisposeCCursor                    (CCrsrHandle             cCrsr)                                ONEWORDINLINE(0xAA26);
  1601.  
  1602. #if OLDROUTINELOCATIONS
  1603. EXTERN_API( CIconHandle )
  1604. GetCIcon                        (short                     iconID)                                ONEWORDINLINE(0xAA1E);
  1605.  
  1606. EXTERN_API( void )
  1607. PlotCIcon                        (const Rect *            theRect,
  1608.                                  CIconHandle             theIcon)                            ONEWORDINLINE(0xAA1F);
  1609.  
  1610. EXTERN_API( void )
  1611. DisposeCIcon                    (CIconHandle             theIcon)                            ONEWORDINLINE(0xAA25);
  1612.  
  1613. #endif  /* OLDROUTINELOCATIONS */
  1614.  
  1615. EXTERN_API( void )
  1616. SetStdCProcs                    (CQDProcs *                procs)                                ONEWORDINLINE(0xAA4E);
  1617.  
  1618. EXTERN_API( GDHandle )
  1619. GetMaxDevice                    (const Rect *            globalRect)                            ONEWORDINLINE(0xAA27);
  1620.  
  1621. EXTERN_API( long )
  1622. GetCTSeed                        (void)                                                        ONEWORDINLINE(0xAA28);
  1623.  
  1624. EXTERN_API( GDHandle )
  1625. GetDeviceList                    (void)                                                        ONEWORDINLINE(0xAA29);
  1626.  
  1627. EXTERN_API( GDHandle )
  1628. GetMainDevice                    (void)                                                        ONEWORDINLINE(0xAA2A);
  1629.  
  1630. EXTERN_API( GDHandle )
  1631. GetNextDevice                    (GDHandle                 curDevice)                            ONEWORDINLINE(0xAA2B);
  1632.  
  1633. EXTERN_API( Boolean )
  1634. TestDeviceAttribute                (GDHandle                 gdh,
  1635.                                  short                     attribute)                            ONEWORDINLINE(0xAA2C);
  1636.  
  1637. EXTERN_API( void )
  1638. SetDeviceAttribute                (GDHandle                 gdh,
  1639.                                  short                     attribute,
  1640.                                  Boolean                 value)                                ONEWORDINLINE(0xAA2D);
  1641.  
  1642. EXTERN_API( void )
  1643. InitGDevice                        (short                     qdRefNum,
  1644.                                  long                     mode,
  1645.                                  GDHandle                 gdh)                                ONEWORDINLINE(0xAA2E);
  1646.  
  1647. EXTERN_API( GDHandle )
  1648. NewGDevice                        (short                     refNum,
  1649.                                  long                     mode)                                ONEWORDINLINE(0xAA2F);
  1650.  
  1651. EXTERN_API( void )
  1652. DisposeGDevice                    (GDHandle                 gdh)                                ONEWORDINLINE(0xAA30);
  1653.  
  1654. EXTERN_API( void )
  1655. SetGDevice                        (GDHandle                 gd)                                    ONEWORDINLINE(0xAA31);
  1656.  
  1657. EXTERN_API( GDHandle )
  1658. GetGDevice                        (void)                                                        ONEWORDINLINE(0xAA32);
  1659.  
  1660. EXTERN_API( long )
  1661. Color2Index                        (const RGBColor *        myColor)                            ONEWORDINLINE(0xAA33);
  1662.  
  1663. EXTERN_API( void )
  1664. Index2Color                        (long                     index,
  1665.                                  RGBColor *                aColor)                                ONEWORDINLINE(0xAA34);
  1666.  
  1667. EXTERN_API( void )
  1668. InvertColor                        (RGBColor *                myColor)                            ONEWORDINLINE(0xAA35);
  1669.  
  1670. EXTERN_API( Boolean )
  1671. RealColor                        (const RGBColor *        color)                                ONEWORDINLINE(0xAA36);
  1672.  
  1673. EXTERN_API( void )
  1674. GetSubTable                        (CTabHandle             myColors,
  1675.                                  short                     iTabRes,
  1676.                                  CTabHandle             targetTbl)                            ONEWORDINLINE(0xAA37);
  1677.  
  1678. EXTERN_API( void )
  1679. MakeITable                        (CTabHandle             cTabH,
  1680.                                  ITabHandle             iTabH,
  1681.                                  short                     res)                                ONEWORDINLINE(0xAA39);
  1682.  
  1683. EXTERN_API( void )
  1684. AddSearch                        (ColorSearchUPP         searchProc)                            ONEWORDINLINE(0xAA3A);
  1685.  
  1686. EXTERN_API( void )
  1687. AddComp                            (ColorComplementUPP     compProc)                            ONEWORDINLINE(0xAA3B);
  1688.  
  1689. EXTERN_API( void )
  1690. DelSearch                        (ColorSearchUPP         searchProc)                            ONEWORDINLINE(0xAA4C);
  1691.  
  1692. EXTERN_API( void )
  1693. DelComp                            (ColorComplementUPP     compProc)                            ONEWORDINLINE(0xAA4D);
  1694.  
  1695. EXTERN_API( void )
  1696. SetClientID                        (short                     id)                                    ONEWORDINLINE(0xAA3C);
  1697.  
  1698. EXTERN_API( void )
  1699. ProtectEntry                    (short                     index,
  1700.                                  Boolean                 protect)                            ONEWORDINLINE(0xAA3D);
  1701.  
  1702. EXTERN_API( void )
  1703. ReserveEntry                    (short                     index,
  1704.                                  Boolean                 reserve)                            ONEWORDINLINE(0xAA3E);
  1705.  
  1706. EXTERN_API( void )
  1707. SetEntries                        (short                     start,
  1708.                                  short                     count,
  1709.                                  CSpecArray             aTable)                                ONEWORDINLINE(0xAA3F);
  1710.  
  1711. EXTERN_API( void )
  1712. SaveEntries                        (CTabHandle             srcTable,
  1713.                                  CTabHandle             resultTable,
  1714.                                  ReqListRec *            selection)                            ONEWORDINLINE(0xAA49);
  1715.  
  1716. EXTERN_API( void )
  1717. RestoreEntries                    (CTabHandle             srcTable,
  1718.                                  CTabHandle             dstTable,
  1719.                                  ReqListRec *            selection)                            ONEWORDINLINE(0xAA4A);
  1720.  
  1721. EXTERN_API( short )
  1722. QDError                            (void)                                                        ONEWORDINLINE(0xAA40);
  1723.  
  1724. EXTERN_API( void )
  1725. CopyDeepMask                    (const BitMap *            srcBits,
  1726.                                  const BitMap *            maskBits,
  1727.                                  const BitMap *            dstBits,
  1728.                                  const Rect *            srcRect,
  1729.                                  const Rect *            maskRect,
  1730.                                  const Rect *            dstRect,
  1731.                                  short                     mode,
  1732.                                  RgnHandle                 maskRgn)                            ONEWORDINLINE(0xAA51);
  1733.  
  1734. EXTERN_API( void )
  1735. DeviceLoop                        (RgnHandle                 drawingRgn,
  1736.                                  DeviceLoopDrawingUPP     drawingProc,
  1737.                                  long                     userData,
  1738.                                  DeviceLoopFlags         flags)                                ONEWORDINLINE(0xABCA);
  1739.  
  1740.  
  1741.                                                                                             #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  1742.                                                                                             #pragma parameter __A0 GetMaskTable
  1743.                                                                                             #endif
  1744. EXTERN_API( Ptr )
  1745. GetMaskTable                    (void)                                                        ONEWORDINLINE(0xA836);
  1746.  
  1747. EXTERN_API( PatHandle )
  1748. GetPattern                        (short                     patternID)                            ONEWORDINLINE(0xA9B8);
  1749.  
  1750. EXTERN_API( CursHandle )
  1751. MacGetCursor                    (short                     cursorID)                            ONEWORDINLINE(0xA9B9);
  1752.  
  1753. EXTERN_API( PicHandle )
  1754. GetPicture                        (short                     pictureID)                            ONEWORDINLINE(0xA9BC);
  1755.  
  1756. EXTERN_API( long )
  1757. DeltaPoint                        (Point                     ptA,
  1758.                                  Point                     ptB)                                ONEWORDINLINE(0xA94F);
  1759.  
  1760. EXTERN_API( void )
  1761. ShieldCursor                    (const Rect *            shieldRect,
  1762.                                  Point                     offsetPt)                            ONEWORDINLINE(0xA855);
  1763.  
  1764. EXTERN_API( void )
  1765. ScreenRes                        (short *                scrnHRes,
  1766.                                  short *                scrnVRes)                            SIXWORDINLINE(0x225F, 0x32B8, 0x0102, 0x225F, 0x32B8, 0x0104);
  1767.  
  1768. EXTERN_API( void )
  1769. GetIndPattern                    (Pattern *                thePat,
  1770.                                  short                     patternListID,
  1771.                                  short                     index);
  1772.  
  1773.  
  1774. #if CGLUESUPPORTED
  1775. EXTERN_API_C( Boolean )
  1776. ptinrect                        (const Point *            pt,
  1777.                                  const Rect *            r);
  1778.  
  1779. EXTERN_API_C( void )
  1780. pt2rect                            (const Point *            pt1,
  1781.                                  const Point *            pt2,
  1782.                                  Rect *                    destRect);
  1783.  
  1784. EXTERN_API_C( void )
  1785. pttoangle                        (const Rect *            r,
  1786.                                  const Point *            pt,
  1787.                                  short *                angle);
  1788.  
  1789. EXTERN_API_C( Boolean )
  1790. ptinrgn                            (const Point *            pt,
  1791.                                  RgnHandle                 rgn);
  1792.  
  1793. EXTERN_API_C( void )
  1794. addpt                            (const Point *            src,
  1795.                                  Point *                dst);
  1796.  
  1797. EXTERN_API_C( void )
  1798. subpt                            (const Point *            src,
  1799.                                  Point *                dst);
  1800.  
  1801. EXTERN_API_C( Boolean )
  1802. equalpt                            (const Point *            pt1,
  1803.                                  const Point *            pt2);
  1804.  
  1805. EXTERN_API_C( void )
  1806. stuffhex                        (void *                    thingPtr,
  1807.                                  const char *            s);
  1808.  
  1809. EXTERN_API_C( void )
  1810. stdline                            (const Point *            newPt);
  1811.  
  1812. EXTERN_API_C( void )
  1813. shieldcursor                    (const Rect *            shieldRect,
  1814.                                  Point *                offsetPt);
  1815.  
  1816. EXTERN_API_C( long )
  1817. deltapoint                        (Point *                ptA,
  1818.                                  Point *                ptB);
  1819.  
  1820. #endif  /* CGLUESUPPORTED */
  1821.  
  1822. #if OLDROUTINENAMES
  1823. #define DisposPixMap(pm) DisposePixMap(pm)
  1824. #define DisposPixPat(pp) DisposePixPat(pp)
  1825. #define DisposCTable(cTable) DisposeCTable(cTable)
  1826. #define DisposCCursor(cCrsr) DisposeCCursor(cCrsr)
  1827. #if OLDROUTINELOCATIONS
  1828. #define DisposCIcon(theIcon) DisposeCIcon(theIcon)
  1829. #endif  /* OLDROUTINELOCATIONS */
  1830.  
  1831. #define DisposGDevice(gdh) DisposeGDevice(gdh)
  1832. #endif  /* OLDROUTINENAMES */
  1833.  
  1834. /*
  1835.     From ToolUtils.i
  1836. */
  1837. EXTERN_API( void )
  1838. PackBits                        (Ptr *                    srcPtr,
  1839.                                  Ptr *                    dstPtr,
  1840.                                  short                     srcBytes)                            ONEWORDINLINE(0xA8CF);
  1841.  
  1842. EXTERN_API( void )
  1843. UnpackBits                        (Ptr *                    srcPtr,
  1844.                                  Ptr *                    dstPtr,
  1845.                                  short                     dstBytes)                            ONEWORDINLINE(0xA8D0);
  1846.  
  1847.  
  1848. /*
  1849.     Also from ToolUtils.i
  1850. */
  1851. EXTERN_API( Fixed )
  1852. SlopeFromAngle                    (short                     angle)                                ONEWORDINLINE(0xA8BC);
  1853.  
  1854. EXTERN_API( short )
  1855. AngleFromSlope                    (Fixed                     slope)                                ONEWORDINLINE(0xA8C4);
  1856.  
  1857.  
  1858.  
  1859.  
  1860.  
  1861.  
  1862.  
  1863.  
  1864.  
  1865.  
  1866.  
  1867.  
  1868.  
  1869.  
  1870. #if PRAGMA_STRUCT_ALIGN
  1871.     #pragma options align=reset
  1872. #elif PRAGMA_STRUCT_PACKPUSH
  1873.     #pragma pack(pop)
  1874. #elif PRAGMA_STRUCT_PACK
  1875.     #pragma pack()
  1876. #endif
  1877.  
  1878. #ifdef PRAGMA_IMPORT_OFF
  1879. #pragma import off
  1880. #elif PRAGMA_IMPORT
  1881. #pragma import reset
  1882. #endif
  1883.  
  1884. #ifdef __cplusplus
  1885. }
  1886. #endif
  1887.  
  1888. #endif /* __QUICKDRAW__ */
  1889.  
  1890.